#include <stdio.h>
#include <stdlib.h>
#include <string.h>

/*
 * This program has been modified for to incorporate
 * the circular list concept.
 * 
 */

#define TRUE 1
#define FALSE 0

typedef struct _cell *pointer;

typedef struct _cell {
  char *val;
  pointer next;
  pointer prev;
} cell;

typedef struct {
  cell element;
  pointer first;
  pointer last;
} list;


list *new_list();

void add_element(list *p_list, char *element);

unsigned int has_element(list *p_list, char *element);

void print_list(const list *plist);

void remove_element(list *plist, char *element);

void free_list(list *flist);
